package ssm.spring.ioc_05;

import org.springframework.beans.factory.FactoryBean;

/**
 * 通过FactoryBean实现引用第三方复杂类时的组件实例化
 * 步骤:
 *    1. 实现FactoryBean接口<指定返回值泛型>
 *    2. 定义set方法，间接给bean对象赋值
 */
public class JavaBeanFactoryBean implements FactoryBean<JavaBean> {

    private String value;

    // 通过工厂的set方法给bean属性赋值
    public void setValue(String value) {
        this.value = value;
    }

    @Override
    public JavaBean getObject() throws Exception {
        //使用你自己的方式实例化对象
        JavaBean javaBean = new JavaBean();
        javaBean.setName(value);
        return javaBean;
    }

    @Override
    public Class<?> getObjectType() {
        return JavaBean.class;
    }
}
